The Size-Change Termination Principle on Non-Well founded Data Types
نویسنده
چکیده
Despite its simplicity, the size-change termination principle (SCT), presented by Lee, Jones and Ben-Amram in [LJB01], is surprisingly strong and is able to show termination for a large class of programs. A significant limitation for its use, however, is the fact that the SCT requires data types to be well-founded, and that all mechanisms used to determine termination must involve decreases in these global, well-founded partial orders. In the following, I will present an extension of the size-change principle that allows for non-well founded data types, and a realization of this principle for integer data types. The extended size-change principle is realized through combining abstract interpretation over the domain of convex polyhedra with the use of size-change graphs. In the cases when data types arewell founded, the method handles every case that is handled by LJB size-change termination. The method has been implemented in a subject language independent shared library, as well as in the ANSI C specializer C-MixII, for a subset of its internal language Core-C.
منابع مشابه
TRA 9 / 03 Affine - Based Size - Change Termination Anderson HUGH and Siau Cheng KHOO September 2003
The size-change principle devised by Lee, Jones and Ben-Amram, provides an effective method of determining program termination for recursive functions over well-founded types. Termination analysis using the principle involves the classification of functions either into size-change terminating ones, or ones which are not size-change terminating. Size-change graphs are constructed to represent th...
متن کاملDependent Type Theory with Parameterized First-Order Data Types and Well-Founded Recursion
We present a variation of Martin-Löf’s logical framework with βιequality, extended with first-order parameterized algebraic data types and recursive pattern-matching definitions. Our contribution is a proof of normalization for the proposed system, from which we obtain decidable type-correctness. Our result holds under the assumption that the call relation of the recursive definitions is well-f...
متن کاملMonotonicity Constraints for Termination in the Integer Domain
Size-Change Termination (SCT) is a method of proving program termination based on the impossibility of infinite descent. To this end we use a program abstraction in which transitions are described by monotonicity constraints over (abstract) variables. When only constraints of the form x > y and x ≥ y are allowed, we have size-change graphs. In the last decade, both theory and practice have evol...
متن کاملTermination Analysis of Java Bytecode
Introduction: The state of the art in termination analysis includes advanced techniques developed for logic and functional programming [12, 4, 9, 11, 10] and imperative languages [2, 5, 8, 6, 10], as well as for term rewriting systems [10]. In [6, 5] tools for proving termination of large industrial code are presented. However, termination of low-level languages, such as Java bytecode, has rece...
متن کاملWell-Founded Sized Types in the Calculus of (Co)Inductive Constructions
Type-based termination is a mechanism for ensuring termination and productivity of (co)recursive definitions [4]. Its main feature is the use of sized types (i.e. types annotated with size information) to track the size of arguments in (co)recursive calls. Termination of recursive function (and productivity of corecursive functions) is ensured by restricting recursive calls to smaller arguments...
متن کامل